<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="width=device-width, initial-scale=1">
		<title>精匠-聊天室</title>
		<meta name="keywords" content="">
		<meta name="description" content="">
		<link rel="icon" type="image/x-icon" href="">

		<link href="../../static/css/main.css" rel="stylesheet">
		<link href="../../static/font/iconfont.css" rel="stylesheet">
		<link href="../../static/layui/css/layui.css" rel="stylesheet">

	</head>

	<body>


		<div class="layui-container">

			<fieldset class="layui-elem-field layui-field-title" style="margin-top: 52px;">
				<legend>精匠-聊天室-操作示例</legend>
			</fieldset>

			<div class="layui-btn-container" id="LAY-layim-demo">
				<button class="layui-btn layui-btn-primary" data-type="chat">自定义会话</button>
				<button class="layui-btn layui-btn-primary" data-type="message">接受好友的消息</button>
				<button class="layui-btn layui-btn-primary" data-type="messageTemp">接受临时会话消息</button>

				<button class="layui-btn layui-btn-primary" data-type="add">申请好友</button>
				<button class="layui-btn layui-btn-primary" data-type="addqun">申请加群</button>
				<button class="layui-btn layui-btn-primary" data-type="addFriend">同意好友</button>
				<button class="layui-btn layui-btn-primary" data-type="addGroup">增加群组到主面板</button>
				<button class="layui-btn layui-btn-primary" data-type="removeFriend">删除主面板好友</button>
				<button class="layui-btn layui-btn-primary" data-type="removeGroup">删除主面板群组</button>

				<button class="layui-btn layui-btn-primary" data-type="setGray">置灰离线好友</button>
				<button class="layui-btn layui-btn-primary" data-type="unGray">取消好友置灰</button>
			</div>



	</body>

	<script src="../../static/js/jquery-1.10.1.min.js"></script>
	<script src="../../static/js/wxx_main.js"></script>
	<script src="../../static/layui/layui.js"></script>


	<script>

		layui.config({
			layimPath: '../../static/dists/', //配置 layim.js 所在目录
			layimResPath: '../../static/dists/res/', //layim 资源文件所在目录
			version: '3.9.9'
		}).extend({
			layim: layui.cache.layimPath + 'layim' //配置 layim 组件所在的路径
		}).use('layim', function(layim) { //加载组件

			// 演示自动回复
			var autoReplay = [
				'模拟消息 1',
				'模拟消息 2',
				'模拟消息 3',
				'模拟消息 4',
				'模拟消息 5',
				'模拟消息 6',
				'模拟消息 7',
				'模拟消息 8',
				'模拟消息 9'
			];

			//基础配置
			layim.config({
				//初始化接口
				init: {
					url: '../../static/dists/res/getList.json',
					data: {}
				},

				//查看群员接口
				members: {
					url: '../../static/dists/res/getMembers.json',
					data: {}
				},

				//上传图片接口
				uploadImage: {
					url: '', //（返回的数据格式见下文）
					type: '' //默认post
				},

				//上传文件接口
				uploadFile: {
					url: '', //（返回的数据格式见下文）
					type: '' //默认post
				},

				
				isAudio: false,  // 聊天会话框发送音频按钮
				isVideo: false,  // 聊天会话框发送视频按钮

				//扩展工具栏
				tool: [],
				// 更多参数见 layim 文档
				msgbox: layui.cache.layimResPath + 'html/msgbox.html', //消息盒子页面地址，若不开启，剔除该项即可
				find: layui.cache.layimResPath + 'html/find.html', //发现页面地址，若不开启，剔除该项即可
				chatLog: layui.cache.layimResPath + 'html/chatLog.html', //聊天记录页面地址，若不开启，剔除该项即可

			});


			//事件 - 在线状态的切换事件
			layim.on('online', function(data) {
				//console.log(data);
			});

			//事件 - 签名修改
			layim.on('sign', function(value) {
				//console.log(value);
			});

			//事件 - 自定义工具栏点击，以添加代码为例
			layim.on('tool(code)', function(insert) {
				layer.prompt({
					title: '插入代码',
					formType: 2,
					shade: 0
				}, function(text, index) {
					layer.close(index);
					insert('[pre class=layui-code]' + text + '[/pre]'); //将内容插入到编辑器
				});
			});

			//事件 - layim建立就绪
			layim.on('ready', function(res) {

				//console.log(res.mine);

				layim.msgbox(5); //模拟消息盒子有新消息，实际使用时，一般是动态获得

				// 向主面板添加群组
				layim.addList({
					type: 'group',
					avatar: "http://tva3.sinaimg.cn/crop.64.106.361.361.50/7181dbb3jw8evfbtem8edj20ci0dpq3a.jpg",
					groupname: '前端开发',
					id: "12333333",
					members: 0
				});

				// 向主面板添加好友（如果检测到该 socket）
				layim.addList({
					type: 'friend',
					avatar: layim.cache().base.defaultAvatar // 这里赋值默认头像，实际使用时请改成正式头像地址
						,
					username: '测试222',
					groupid: 2,
					id: "1233333312121212",
					remark: "remark"
				});

				setTimeout(function() {
					//接受消息（如果检测到该socket）

					//临时会话的消息，即消息发送者不在好友列表上
					/*
					layim.getMessage({
					  username: "Hi"
					  ,avatar: "http://qzapp.qlogo.cn/qzapp/100280987/56ADC83E78CEC046F8DF2C5D0DD63CDE/100"
					  ,id: "10000111"
					  ,type: "friend"
					  ,cid: Math.random()*100000|0 //模拟消息id
					  ,content: "临时："+ new Date().getTime()
					});*/

					//好友的消息
					layim.getMessage({
						username: "测试1",
						avatar: "",
						id: "100001",
						type: "friend",
						cid: Math.random() * 100000 |
							0 //模拟消息 id，会赋值在li的data-cid上，以便完成一些消息的操作（如撤回），可不填
							,
						content: "这是模拟接受的一段测试消息。标记：" + new Date().getTime()
					});

				}, 1500);
			});

			//事件 - 发送消息
			layim.on('sendMessage', function(data) {
				var To = data.to;
				//console.log(data);

				if (To.type === 'friend') {
					layim.setChatStatus('<span style="color:#FF5722;">对方正在输入…</span>');
				}

				//演示自动回复
				setTimeout(function() {
					var obj = {};
					if (To.type === 'group') {
						obj = {
							username: '模拟群员 ' + (Math.random() * 100 | 0),
							avatar: layim.cache().base.defaultAvatar // 这里赋值默认头像，实际使用时请改成正式头像地址
								,
							id: To.id,
							type: To.type,
							content: autoReplay[Math.random() * 9 | 0]
						}
					} else {
						obj = {
							username: To.name,
							avatar: To.avatar,
							id: To.id,
							type: To.type,
							content: autoReplay[Math.random() * 9 | 0]
						}
						layim.setChatStatus('<span style="color:#FF5722;">在线</span>');
					}
					layim.getMessage(obj);
				}, 1000);
			});

			//事件 - 查看群员
			layim.on('members', function(data) {
				//console.log(data);
			});

			//事件 - 聊天窗口的切换
			layim.on('chatChange', function(res) {
				var type = res.data.type;
				//console.log(res.data.id)
				if (type === 'friend') {
					//模拟标注好友状态
					//layim.setChatStatus('<span style="color:#FF5722;">在线</span>');
				} else if (type === 'group') {
					//模拟系统消息
					layim.getMessage({
						system: true,
						id: res.data.id,
						type: "group",
						content: '模拟群员' + (Math.random() * 100 | 0) + '加入群聊'
					});
				}
			});

			//事件 - 更换背景
			layim.on('setSkin', function(filename, src) {
				console.log(filename)
			});

			// 面板外的操作示例事件
			layui.use('util', function(util) {
				util.on('data-type', {
					chat: function() {
						//自定义会话
						layim.chat({
							name: '小测试',
							type: 'friend',
							avatar: '//tva3.sinaimg.cn/crop.0.0.180.180.180/7f5f6861jw1e8qgp5bmzyj2050050aa8.jpg',
							id: 1008612
						});
						layer.msg('即：会话对象不必非要在右下角主面板中');
					},
					message: function() {
						//制造好友消息
						layim.getMessage({
							username: "测试1",
							avatar: "//unpkg.com/outeres/demo/avatar/0.png",
							id: "100001",
							type: "friend",
							content: "这是一条测试内容。演示标记：" + new Date().getTime(),
							timestamp: new Date().getTime()
						});
					},
					messageAudio: function() {
						//接受音频消息
						layim.getMessage({
							username: "测试1",
							avatar: "//unpkg.com/outeres/demo/avatar/0.png",
							id: "100001",
							type: "friend",
							content: "audio[//unpkg.com/outeres/audio/test.mp3]",
							timestamp: new Date().getTime()
						});
					},
					messageVideo: function() {
						//接受视频消息
						layim.getMessage({
							username: "测试1",
							avatar: "//unpkg.com/outeres/demo/avatar/0.png",
							id: "100001",
							type: "friend",
							content: "video[http://www.w3school.com.cn//i/movie.ogg]",
							timestamp: new Date().getTime()
						});
					},
					messageTemp: function() {
						//接受临时会话消息
						layim.getMessage({
							username: "测试X",
							avatar: "//unpkg.com/outeres/demo/avatar/0.png",
							id: "198909151014",
							type: "friend",
							content: "临时：" + new Date().getTime()
						});
					},
					add: function() {
						//实际使用时数据由动态获得
						layim.add({
							type: 'friend',
							username: '测试Y',
							avatar: '//unpkg.com/outeres/demo/avatar/0.png',
							submit: function(group, remark, index) {
								layer.msg('好友申请已发送，请等待对方确认', {
									icon: 1,
									shade: 0.5
								}, function() {
									layer.close(index);
								});

								//通知对方
								/*
	            $.post('/im-applyFriend/', {
	              uid: info.uid
	              ,from_group: group
	              ,remark: remark
	            }, function(res){
	              if(res.status != 0){
	                return layer.msg(res.msg);
	              }
	
	              layer.msg('好友申请已发送，请等待对方确认', {
	                icon: 1
	                ,shade: 0.5
	              }, function(){
	                layer.close(index);
	              });
	            });
	            */
							}
						});
					},
					addqun: function() {
						layim.add({
							type: 'group',
							username: '测试群组1',
							avatar: '//unpkg.com/outeres/demo/avatar/0.png',
							submit: function(group, remark, index) {
								layer.msg('申请已发送，请等待管理员确认', {
									icon: 1,
									shade: 0.5
								}, function() {
									layer.close(index);
								});

								//通知对方
								/*
								$.post('/im-applyGroup/', {
								  uid: info.uid
								  ,from_group: group
								  ,remark: remark
								}, function(res){
								
								});
								*/
							}
						});
					},
					addFriend: function() {
						var user = {
							type: 'friend',
							id: 1234560,
							username: '测试A' //好友昵称，若申请加群，参数为：groupname
								,
							avatar: '//unpkg.com/outeres/demo/avatar/0.png' //头像
								,
							sign: '测试内容'
						}
						layim.setFriendGroup({
							type: user.type,
							username: user.username,
							avatar: user.avatar,
							group: layim.cache().friend //获取好友列表数据
								,
							submit: function(group, index) {
								//一般在此执行Ajax和WS，以通知对方已经同意申请
								//……

								//同意后，将好友追加到主面板
								layim.addList({
									type: user.type,
									username: user.username,
									avatar: user.avatar,
									groupid: group //所在的分组id
										,
									id: user.id //好友ID
										,
									sign: user.sign //好友签名
								});

								layer.close(index);
							}
						});
					},
					addGroup: function() {
						layer.msg('已成功把[测试群组33]添加到群组里', {
							icon: 1
						});
						//增加一个群组
						layim.addList({
							type: 'group',
							avatar: "//unpkg.com/outeres/demo/avatar/0.png",
							groupname: '测试群组33',
							id: "12333333",
							members: 0
						});
					},
					removeFriend: function() {
						layer.msg('已成功删除[测试2]', {
							icon: 1
						});
						//删除一个好友
						layim.removeList({
							id: 100001222,
							type: 'friend'
						});
					},
					removeGroup: function() {
							layer.msg('已成功删除[测试群组33]', {
								icon: 1
							});
							//删除一个群组
							layim.removeList({
								id: 12333333,
								type: 'group'
							});
						}
						//置灰离线好友
						,
					setGray: function() {
							layim.setFriendStatus(168168, 'offline');

							layer.msg('已成功将好友[测试4]置灰', {
								icon: 1
							});
						}
						//取消好友置灰
						,
					unGray: function() {
							layim.setFriendStatus(168168, 'online');

							layer.msg('成功取消好友[测试4]置灰状态', {
								icon: 1
							});
						}
						//移动端版本
						,
					mobile: function() {
						var device = layui.device();
						var mobileHome = 'mobile.html';
						if (device.android || device.ios) {
							return location.href = mobileHome;
						}
						var index = layer.open({
							type: 2,
							title: '移动版演示',
							content: mobileHome,
							area: ['375px', '667px'],
							shadeClose: true,
							scrollbar: false,
							shade: 0.8,
							end: function() {
								layer.close(index + 2);
							}
						});
					}
				});
			});

		});
	</script>



</html>